package z.farrell.framework.exceptions;

import z.farrell.framework.exceptions.base.BaseUnCheckedException;
import z.farrell.framework.exceptions.base.IExceptionCodeMessage;

/**
 * 系统异常
 * 所有的系统异常都应该继承该类或其子类
 * @author farrell
 * @create 2016-10-25-16:02
 */
public class SystemException extends BaseUnCheckedException{
    /**
     * @author farrell
     * @Date 2016/10/25 16:04
     */
    private static final long serialVersionUID = -6902475070938523445L;

    /**
     * 构造方法
     * @author farrell
     * @Date 2016/10/25 15:52
     */
    public SystemException() {
        super();
    }

    /**
     * 构造方法
     * @param message 出现异常提示信息
     * @param cause 抛出的异常
     * @author farrell
     * @Date 2016/10/25 15:53
     */
    public SystemException(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * 构造方法
     * @param message 出现异常提示信息
     * @author farrell
     * @Date 2016/10/25 15:54
     */
    public SystemException(String message) {
        super(message);
    }

    /**
     * 构造方法
     * @param cause 抛出的异常
     * @author farrell
     * @Date 2016/10/25 15:57
     */
    public SystemException(Throwable cause) {
        super(cause);
    }

    /**
     * 构造方法
     * @param exceptionCodeMessage 自定义异常枚举接口
     * @author farrell
     * @Date 2016/10/25 15:57
     */
    public SystemException(IExceptionCodeMessage exceptionCodeMessage) {
        super(exceptionCodeMessage);
    }

    /**
     * 构造方法
     * @param cause 抛出的异常
     * @param exceptionCodeMessage 自定义异常枚举接口
     * @author farrell
     * @Date 2016/10/25 15:58
     */
    public SystemException(Throwable cause, IExceptionCodeMessage exceptionCodeMessage) {
        super(cause, exceptionCodeMessage);
    }

    /**
     * 构造方法
     * @param code 自定义异常编号
     * @param message 自定义异常提示信息
     * @author farrell
     * @Date 2016/10/25 15:58
     */
    public SystemException(String code, String message) {
        super(code, message);
    }
}
